A database is a collection of data structured and organized in a disciplined fashion, that makes stored information of interest more quickly available. When a database is organized and accessed according to relationships between stored items, it is referred as a relational database. A relational database program allows the user to create, modify and submit queries to the relational database, and view the results after processing.
An example of a complex relational database is a database used by scientists working on life sciences, which stores gene structures, gene information and protein compounds.
Although relational database programs offer many advantages to manage user queries, the inherently strong relations that may be established between several tables for specific queries may require long processing times and result in erratic response times, especially for large databases. Consequences may be unnecessary expense and resource waste, and user dissatisfaction.
The following patents and commercial solutions illustrate some proposals to address the problem of long duration processes.
U.S. Pat. No. 6,026,424 to Circenis discloses a method and system for switching long duration tasks from synchronous to asynchronous execution and for reporting task results in a client/server process environment. A client process in a computer system opens a communication channel to a server process in the computer system and instructs the server process to execute a task. The server process starts a timer when it begins execution of the task, to determine whether the task is of short or long duration. If the task completes before the timer reaches a predetermined value, the server process reports task completion to the client process on the open communication channel. If the task does not complete before the timer reaches the predetermined value, the server process closes the communication channel to preserve system resources and continues executing the task asynchronously. When the task is complete, the server process reopens a communication channel and reports task completion to the client process. Results are transmitted directly to the client process only if they are smaller than a predetermined size, otherwise, they are stored in a cache to preserve system resources. The client can then request the results when it is ready to receive them.
U.S. Pat. No. 6,041,327 to Glitho et al. discloses a mechanism for supporting the generation by a server relational database, and the sending from that server relational database to a client, of a notification regarding accesses in the database indicative of the occurrence of certain events of interest.
The DB2 Query Patroller product available from the Assignee is a tool for managing access to Decision Support Systems that accepts, analyzes, prioritizes, and schedules DB2 database requests and optionally notifies users when their DB2 requests have been processed. One of the limitations of this solution is that the server executes only on one type of relational database, namely, a DB2 database. Moreover, the notification of results availability is obtained in this solution, checking through an administrator reserved tool detailed information about the query submitted.